ну вот в чём твоя ошибка: Ты изменил название текстуры, а значит ты изменил и пути, тебе нужно зайти в war3modelEditor и там уже открыв модель выбрать вкладку: Windows=>Texture Manager, где будет список текстур, ты удаляешь 1 старую текстуру, которая у тебя была и добавляешь новую, при этом модель с текстурой должны лежать в одной папке, которая не содержит кириллицы (например путь должен быть d:\Users\User\Desktop\moroz - без русских букв ).
Переименовать новую текстуру на старую по идее не имеет смысла, потому что опять же ты сохранил её без текстуры, а => испоганил, накосячил, сломал (называй как хочешь).
Последний созданный юнит — это глобальная переменная. Скорее всего когда Вы обращаетесь к ней, то там находится не то значение, которое вы ожидаете. Используйте локальные переменные.
Maxsavin, молодые, зеленые, все то вам объяснять надо.
Берете карту, делаете копию, вычищаете из неё триггер за триггером, юнита за юнитом, кусочек карты за кусочком, пока либо не пройдет баг, либо в карте не останется ничего, что бы вы не были готовы показать. Да, проверять надо после каждого удаления, а не удалять все скопом. Да, это долго, но другого способа нет.
В первом случае (баг прошел после очередного удаления) - причина найдена и можно детально исследовать.
Во втором случае (удален весь "секретный" контент, а баг остался) - можно смело показывать карту и просить помощи.
P.S. главное не забыть, что удалять надо из копии карты, а не из единственного существующего исходника. Ответственности за потерю единственной рабочей версии в результате неправильного использования этого метода не несу.
по идее нужно создать буленовскую переменную и как только наступило 20 минут ставить её на false
а в 30 минут ставить на true
и везде где отдаётся приказ на атаку нужно прописать условие
if(myBoolean){
... // тут команда атаковать
}
это если редактировать основной ai файл
можно и по другому
проверять условие что аи пошёл атаковать и возвращать его на базу
А не проще в способности оглушающей ловушки Орды в РО поменять графику - вместо спирали установить сеть и поменять точку крепления к цели?
В принципе, можно таким же способом поменять способность "Замедление", которая у людей.
Причём замедление поставить на 100%, а время - 2 сек.
Отловить автокаст по баффу активирующего юнита и триггерно взорвать юнит-мину.
Или ещё проще - отловить применение способности по количеству маны.
А то ловушка Орды бьёт по области, а не по юниту.
нет, только с помощью мемхака (и то я не тестил с генерацией всякого, будут ли совпадать, но функция та же, что используется в игре при загрузке карты)
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
Talgar2, так путь задай неактивной ReplaceableTextures\CommandButtonsDisabled\DISBTNAbilDoubleStrike.blp. Но вообще мне кажется, что ты чего-то в РО не так сделал, так как неактивная иконка нужна во время пауз, например, когда меню открываешь. Скинь лучше карту с этой способностью и иконками.
а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
Ну а чего полностью не сделать кастом Iplate ? Эта багнутая абилка, она делает юнитов на мгновение неуязвимыми - вот они и не получают урона.
Подбрасывай юнитов триггерно, оглушение - молот бурь, ну и наноси сколько влезет урона.
Рук с одного места расстут, чтоб подкидывать и все эффекты настраивать( как лучше всего такое реализовать?Если триггерно неуязвимость снимать перед дмг?
Исправил так, В РО юниты в воздухе 1с, добавил таймер на 1с для нанесение дмг.
function Trig_PD_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A012'
endfunction
function BuffPD takes nothing returns boolean
return GetUnitAbilityLevel(GetFilterUnit(), 'B006') > 0 == true
endfunction
function DamagePD1 takes nothing returns nothing
timer t = GetExpiredTimer()
integer b = GetHandleId(t)
real i = LRh(b,2)
unit u1 = LUh(b,1)
unit u =LUh(b,0)
call SetUnitInvulnerable(u,false)
call UnitDamageTarget(u1,u,i,true,true,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL,null)
DestroyTimer(t)
t = null
u = null
u1 = null
endfunction
function DamagePD takes nothing returns nothing
integer a = GetHandleId(gg_trg_PD)
group g = LGh(a,0)
real i = LRh(a,2)
unit u1 = LUh(a,1)
unit u = GetEnumUnit()
if IsUnitInGroup(u,g) == false then
timer t = CreateTimer()
integer b = GetHandleId(t)
GroupAddUnit(g,u)
SGh(a,0,g)
SUh(b,0,u)
SUh(b,1,u1)
SRh(b,2,i)
TimerStart(t,1,false,function DamagePD1)
endif
u = null
u1 = null
g = null
endfunction
function TimerPD takes nothing returns nothing
integer a = GetHandleId(gg_trg_PD)
unit u = LUh(a,1)
group g = LGh(a,0)
timer t = GetExpiredTimer()
group g1 = CreateGroup()
location l = GetUnitLoc(u)
integer i = LIh(a,3)+1
SIh(a,3,i)
GroupEnumUnitsInRangeOfLoc(g1,l,900,Condition(function BuffPD))
ForGroup(g1,function DamagePD)
if i == 20
DestroyTimer(t)
DestroyGroup(g)
FlushChildHashtable(udg_hash,a)
endif
DestroyGroup(g1)
RemoveLocation(l)
g = null
g1 = null
u = null
t = null
l = null
endfunction
function Trig_PD_Actions takes nothing returns nothing
unit u = GetSpellAbilityUnit()
D(GetUnitName(u))
integer a = GetHandleId(gg_trg_PD)
real i = GetUnitAbilityLevel(u,'A012')*0.25*GetHeroStr(u,true)+0.5*GetHeroStr(u,true)
group g = CreateGroup()
timer t = CreateTimer()
SGh(a,0,g)
SUh(a,1,u)
SRh(a,2,i)
TimerStart(t,0.02,true,function TimerPD)
u = null
g = null
t = null
endfunction
//===========================================================================
function InitTrig_PD takes nothing returns nothing
set gg_trg_PD = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ( gg_trg_PD, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_PD, Condition( function Trig_PD_Conditions ) )
call TriggerAddAction( gg_trg_PD, function Trig_PD_Actions )
endfunction
Честно я не знаю меняет родная защита и прочие характеристики юнита при использовании тёмный. Давно не игрался с этим. Да и делал я типа кур. Говорят там только модель меняется. А вот перевоплощение да там могут меняться атрибуты и прочее. Если так то редактируйте этого юнита. И вообще проверяйте сами все
При использовании абилы тёмный сам юнит никуда не удаляется, просто модель меняется (сам даже удалял много ещё) - трудно проверить?
А почему ты не можешь просто сделать так,чтобы предмет с твоей броней просто одевался на героя.Это самый простой вариант,в котором есть только одна проблема-найти/сделать модель этого предмета.
Работаю с ВоВ-моделью. Проще сделать много скинов к ней, как в самой ММО, чем модель брони.
Она должна быть в корневой папке варкрафта, лично у меня так. Попробуй переместить если она отдельно. Или скачай заново, может какойнибудь файл пропал, всякое бывает, вирусы там и тд
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
Там всё решено. Скинул одному человеку с обычным эдитором - у него все норм. Решил вопрос, ресетнув эдитор, а затем сбросив высоту декораций и подняв заново всё что нужно. Больше такого не наблюдалось.
Просто скопировать путь к модели у декорации - не выход, т.к. декорация имеет вариации, юниты - нет. Хотя если прописать конкретную вариацию декорации а не разрушаемого объекта - то отображается. Кажется в декорациях есть парочка деревьев.
Sprite - крепление для эффекта огня, который появляется при повреждениях, если модель используется для здания или для юнита, классифицируемого в РО как механический.
A) Текстуру модели бросил с правильным путем в папку вара а в карту не импортировал или не изменил путь на правильный
Б) Если дерево стандартное то у него много вариаций а модель теперь другая без вариаций (???)
Используй вот это, чтобы вытащить UI, потом вот этим конвертируешь в нужный формат, чтобы открыть в PS.
Русскоязычных статей по созданию UI не нашёл, но если знаешь английский, вот ссылка.
кхе, всё вроде можно, но объяснять долго, третье простое, просто при юзании способности в триггерах добавь условие сравнения, если юнит цель применяемой способности нежить, тогда действие о дополнительном уроне, например если способность наносит 100, то 20% это 20,в действии приказать применяющий юнит нанести урон юнит цель применяемой способности 100+(0.20х100), перед этим 100 можно установить, как переменную, например если с каждым уровнем урон растёт на 100, то переменная int=100хУровень способности способность у применяющий юнит.
Сложно объяснил?
Gerych, сюда тоже можно но вопрос будет закрыт через неделю с момента последнего ответа
ну а вообще для таких вещей стоит создать бложик и там в качестве ресурса подобное спрашивать
Это давно обсуждалось. вопрос удаление события
Создание триггер события — 3 утечки. Стереть переменный триггер, и минус 1. Получается остается 2 утечки.
Вот если удалить юнита (Remove unit), то он стирается из события другого триггера?
События триггера никак нельзя удалить, можно только удалить триггер (с кондишенами и акшенами).
А кстати вот - xgm.guru/p/wc3/venomanser
Будет несомненно полезно, как правильно удалять триггеры.
Да и вовсе полезно для общего развития.
Да, версии 3D Max'ов различаются функционалом и в плане интерфейса, но не кардинально, и основы моделирования в различных версиях одни. Изучив логику интерфейса в одной версии, несложно привыкнуть и к новому.) Всё интуитивно понятно и принципы сохраняются одни и те же.)
Учись пользоваться гуглом.
Есть много торрентов, разных сайтов где можно его скачать.
Я бы тебе скинул, но, тут видимо запрещено помогать ссылками. Увы.(
Наверное скорее проблема в версии что плагина что макса ну поробуй другую версию макса с 2011-2014 и точно убедись что плагин именно под твою версию.
Наверное закрывай тему так как знатаков макса здесь не очень много.
способность никак
вместо способности должна быть покупка юнита
при покупке юнита смотрим владельца купленного юнита
это и будет игрок нажавший на иконку
после этого выбираем таверну и удаляем купленного юнита
ilsva, я решил проверить сам. Поставил на пустую карту алтарь, героя и других юнитов, чтобы убить его. Триггер сделал как у тебя, только без условия и издавать звук я делал от алтаря. - Всё работало. Потом поставил условие на тип героя - так же всё работало. Поэтому возможно проблема в том, что ты делаешь издавать звук от триггерного юнита, а он при этом ещё как бы не создан и его позиция не определена. Попробуй сделать издавать звук от алтаря или же перед тем как издавать звук от юнита - попробуй сделать ждать, например 0.5 сек.
Ну я сделал, короче, добавив два триггера. Один отлавливает любой приказ дамочки во время сальто и устанавливает ей скорость анимации в 10000х(время таймера+0,01)%, потом устанавливает анимацию соответствующего сальто и запускает таймер на 0,01 секунду. Второй по истечению этого таймера устанавливает дамочке скорость анимации 100%.
Выглядит временами не особо гладко, но в целом меня устраивает. Только надо немножко подкорректировать анимации модели.
MrSlendyBoy, еще раз, анимация может быть только Channel (спелл сам не может выбрать Channel 1, 2 -10) Проигрывайте анимацию по индексу триггерно при применении способности.
1,2 - это вариации одного и того же состояния, а First, Second, Alternate, Gold и прочие - альтернативы, работающие только с использованием данного тега, причем они также могут иметь свои вариации 1,2 и тд.
Askarto,
Текстуры ландшафта находятся в файлах War3.mpq и War3x.mpq
в папке \TerrainArt\
Пример:
Распаковываешь \TerrainArt\Cityscape\City_GrassTrim.blp Перерисовываешь как надо, закидываешь в карту по этому же адресу. Город - Газон будет выглядеть так как нарисуешь :)
чтобы они ещё и окрашивали друг друга, по типу как вот здесь?
Вот это не понял.
Кто знает как накладывать текстуры друг на друга
Если это сделано средствами mdx, то тут в материале два слоя с разными текстурами. У верхнего режим фильтрации Transparent. Материалы можно редактировать через War3 Model Editor, модуль Material Manager. (Думаю, ты примерно знаешь, как =)
Если в текстуре есть все необходимые цвета, то можно скопировать точки и на карте текстур переместить их в правильное место. А потом сжать (не слить!) точки с разными текстурами, если требуется поместить их в одни координаты.
Rivensing, наверно чтоб от способностей уворачиваться, надо то же самое сделать, только со способностью "Невосприимчивость к магии". Только её надо не со 100% вероятность давать. Потому что она блокирует магию всегда в отличии от "Змеиной ловкости".
невидимость Акамы или волков фарсира (говорящий с духами - герой орды)
там галочка - поиск целей для авто атаки - да/нет
на счёт обезоруживания - либо использовать одну из стандартных способностей на цель (винные палы, безмолвие, туман), либо как написали выше - давай юниту способность "склад"
События
Юнит приводит способность в действие
условие
Юнит применил способность "Пехотинец"
золото у владельца триггерного юнита больше или равно 10
действие
заменить юнита (триггерный юнит) на пехотинец,старая связка боевой единици
боже ну чего невидно
ресурсы это целое число,значит интежер(целочисленная)
нужно написать статью:учимся искать названия функций в гуи
вопрос закрыть незабудь
и вобще статьи прочитай
» WarCraft 3 / Вылетает World Editor
» WarCraft 3 / Проблема с текстурой
» WarCraft 3 / Панель приказов
» WarCraft 3 / Триггерная мина
» WarCraft 3 / Большая проблема
» WarCraft 3 / Почему иконка зеленая?
» WarCraft 3 / Система диалогов
» WarCraft 3 / Тригерный спелл
» WarCraft 3 / Система атрибутов
» WarCraft 3 / Переведите
» WarCraft 3 / Не отображается декорация
» WarCraft 3 / Зад интерфейса
» WarCraft 3 / type key
» WarCraft 3 / Как сделать день в редакторе?
» WarCraft 3 / Удаление юнита
» WarCraft 3 / 3d max
» WarCraft 3 / Способности для героя
» WarCraft 3 / Закреп бота
» WarCraft 3 / Алтарь
» WarCraft 3 / Анимации
» WarCraft 3 / auto-cast способности
» WarCraft 3 / Текстурирование.
» WarCraft 3 / Способность и способность (враг)
» WarCraft 3 / Как отнять ресурс триггером?